// pages/blog-edit/blog-edit.js
//输入文字最大的个数
const MAX_WORDS_NUM = 140
//上传最大图片个数
const MAX_IMG_NUM = 9
//数据库初始化
const db = wx.cloud.database()
//输入文字内容
let content = ''
//定义用户信息
let userInfo = {}

Page({

  /**
   * 页面的初始数据
   */
  data: {
    wordsNum: 0,
    footerButtom: 0,
    images: [],
    selectPhoto: true //添加图片按钮是否显示
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options)
    userInfo = options
  },

  onInput(event){
    console.log(event)
    let wordsNum = event.detail.value.length
    if (wordsNum>=140) {
      wordsNum = `最大字数为${MAX_WORDS_NUM}`
    }
    this.setData({
      wordsNum: wordsNum
    })

    content = event.detail.value
  },

  onFocus(event) {
    // 模拟器获取的键盘高度为0
    console.log(event)
    this.setData({
      footerBottom: event.detail.height,
    })
  },

  onBlur() {
    this.setData({
      footerBottom: 0,
    })
  },

  onChooseImage(){
    let max = MAX_IMG_NUM - this.data.images.length// 当前能选择图片个数

    wx.chooseImage({
      count: max,
      sizeType:['original','compressed'],
      sourceType:['album',['camera']],
      success:(res)=>{
        console.log(res)
        this.setData({
          images: this.data.images.concat(res.tempFilePaths)
        })
        //选择图片后  还能再选几张
        max = MAX_IMG_NUM  - this.data.images.length
        this.setData({
          selectPhoto: max<= 0 ? false : true
        })
      }
    })
  },

  onDelImage(event){
    this.data.images.splice(event.target.dataset.index,1)
    this.setData({
      images: this.data.images
    })
    if (this.data.images.length == MAX_IMG_NUM- 1) {
      this.setData({
        selectPhoto: true
      })
    }
  },


  onPreviewImage(event){ //选择的图片预览
    wx.previewImage({
      urls: this.data.images,
      current: event.target.dataset.imgsrc,
    })
  },


  send(){
    //数据存储在云数据库当中
    //数据库： 内容 图片  openID fileID  昵称 头像 时间
    //云存储： 图片  （返回 fileID）
    
    if (content.trim()=== '') {  // .trim去掉空格
      wx.showModal({
        title: '请输入内容',
      })
      return
    }

    wx.showLoading({
      title: '发布中...',
      mask:true
    })

    let promiseArr = []
    let fileIds = []
    // 图片上传到云存储
      for (let i = 0; i <this.data.images.length; i++){
        let p = new Promise((resolve, reject)=>{
          let item = this.data.images[i]  
       
        //文件扩展名
        let suffix = /\.\w+$/.exec(item)[0]
        wx.cloud.uploadFile({
          cloudPath:'blog/'+ Date.now()+'-'+Math.random*1000000+suffix,  // 云端路径
          filePath: item,     //临时路径
          success:(res)=>{
            console.log(res)
            fileIds = fileIds.concat(res.fileID)
            resolve()
          },
          fail: (err)=>{    
            console.log(err)
            reject()
          }
        })
        })
        promiseArr.push(p)
    }

    //  存入云数据库
    Promise.all(promiseArr).then((res) => {
      db.collection('blog').add({
        data: {
          ...userInfo,
          content,
          img: fileIds,
          createTime: db.serverDate(), // 服务端的时间
        }
      }).then((res) => {
        wx.hideLoading()
        wx.showToast({
          title: '发布成功',
        })

        // 返回blog页面，并且刷新
        wx.navigateBack()
        const pages = getCurrentPages()
        console.log(pages)
        // 取到上一个页面
        const prevPage = pages[pages.length-2]
        prevPage.onPullDownRefresh()
      })
    }).catch((err) => {
      wx.hideLoading()
      wx.showToast({
        title: '发布失败',
      })
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})